package com.huxiu.view;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

public class HorizontalViewPager extends ViewPager {

    private int downX;
    private int downY;

    public HorizontalViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    // getParent().requestDisallowInterceptTouchEvent(true);
    // 自己处理事件 ture ， 自己不处理事件 false
    // 1、上下滑动，自己不处理 false
    // 2、左右滑动
    // 	  2.1、第0页时，且手指从左往右，自己不处理事件 false
    //    2.2、最后一页时，且手指从右往左，自己不处理事件 false
    //    2.3、自己处理事件，true
    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        switch (ev.getAction()) {
            case MotionEvent.ACTION_DOWN:
                // down时要处理事件，否则父容器不把move事件传递下来
                getParent().requestDisallowInterceptTouchEvent(true);
                downX = (int) ev.getX();
                downY = (int) ev.getY();
                break;
            case MotionEvent.ACTION_MOVE:
                int moveX = (int) ev.getX();
                int moveY = (int) ev.getY();
                int diffX = moveX - downX;
                int diffY = moveY - downY;
                // 左右滑动
                if (Math.abs(diffX) > Math.abs(diffY)) {
                    getParent().requestDisallowInterceptTouchEvent(true);
                } else {//上下滑动
                    getParent().requestDisallowInterceptTouchEvent(false);
                }
                break;

            default:
                break;
        }
        return super.dispatchTouchEvent(ev);
    }

}
